package com.wrupple.muba.catalogs.client.module;

import com.google.gwt.inject.client.Ginjector;
import com.wrupple.muba.catalogs.client.activity.BrowsingActivity;
import com.wrupple.muba.catalogs.client.activity.CatalogEntryCreateActivity;
import com.wrupple.muba.catalogs.client.activity.CatalogEntryReadActivity;
import com.wrupple.muba.catalogs.client.activity.CatalogEntryUpdateActivity;
import com.wrupple.muba.catalogs.client.activity.CatalogSelectionActivity;
import com.wrupple.muba.catalogs.client.module.services.CatalogDataServicesFactory;
import com.wrupple.muba.catalogs.client.module.services.CatalogPresentationServiceFactory;
import com.wrupple.muba.catalogs.client.resources.CatalogApplicationIcons;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.CheckBoxFieldProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.ColorPickerFieldProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.DateFieldProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.GenericKeyCellProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.GenericValueCellProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.ImageKeyCellProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.ListFieldProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.MultiTextFieldProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.RichTextFieldProvider;
import com.wrupple.muba.catalogs.client.widgets.fields.providers.TextFieldProvider;
import com.wrupple.muba.common.shared.State.StorageManager;
import com.wrupple.muba.desktop.client.module.ModuleController;


public interface CatalogModule extends CatalogDataServicesFactory, CatalogPresentationServiceFactory, Ginjector {
	
	public interface CatalogModuleController extends ModuleController{

		
	}
	

	public BrowsingActivity getCatalogBrowseActivity();

	public CatalogEntryUpdateActivity getCatalogEntryUpdateActivity();

	public CatalogApplicationIcons getTheme();

	public CatalogEntryCreateActivity getCatalogEntryCreateActivity();

	public CatalogEntryReadActivity getCatalogEntryReadActivity();

	public CatalogSelectionActivity getCatalogSelection();

	public StorageManager getStorageManager();

	public  CatalogModuleController getModuleController();
	
	
	/*
	 * Data Cell providers
	 */
	
	MultiTextFieldProvider fieldMultiText();
	
	RichTextFieldProvider fieldRichText();
	
	TextFieldProvider fieldText();
	
	DateFieldProvider fieldDate();
	
	ListFieldProvider fieldList();
	
	CheckBoxFieldProvider fieldCheckBox();
	
	ColorPickerFieldProvider fieldColor();
	//genericKey
	GenericKeyCellProvider genericKeyCell();
	
	//genericValue
	GenericValueCellProvider genericValueCell();
	
	//imageKey
	ImageKeyCellProvider imageCell();
}
